package calcul;

public class Foret {
	
	private String arbres[][] = {null};
	private String copieArbres[][] = {null};
	private int tailleGrille;
	
	public void simuForet(int tailleGrille){
		
		this.tailleGrille = tailleGrille;
		this.copieArbres = new String[this.tailleGrille][this.tailleGrille];
		
		for (int i = 0; i < this.tailleGrille; i++) {
			for (int j = 0; j < this.tailleGrille; j++) {
				 copieArbres[i][j]=arbres[i][j];
				
	 
			}
	 }
		
		int arbre = 0;
		int arbuste = 0;
		 
		 for (int i = 1; i < this.tailleGrille-1; i++) {
				for (int j = 1; j < this.tailleGrille-1; j++) {
					
					
					
					switch (copieArbres[i][j]){
					
					case "vide":
						arbre = 0;
						arbuste = 0;
						for (int vX = i-1; vX <= i+1; vX++) {
							for (int vY = j-1; vY <= j+1; vY++) {
								if(vX==i && vY==j){
									
								}
								else if(copieArbres[vX][vY]=="arbuste" || copieArbres[vX][vY]=="arbuste2"){
									arbuste++;
								}
								else if(copieArbres[vX][vY]=="arbre"){
									arbre++;
								}
								
							}
						}

							if(arbre>=2 || arbuste>=3 || arbre==1 && arbuste==2){
								arbres[i][j]="jeune_pousse";
							}
						
						
						else{
							arbres[i][j]="vide";
						}
						arbre = 0;
						arbuste = 0;
						break;
						
					case "jeune_pousse":

						for (int vX = i-1; vX <= i+1; vX++) {
							for (int vY = j-1; vY <= j+1; vY++) {
								if(vX==i && vY==j){

								}
								else if(copieArbres[vX][vY]=="arbuste" || copieArbres[vX][vY]=="arbuste2"){
									arbuste++;
								}
								else if(copieArbres[vX][vY]=="arbre"){
									arbre++;
								}
								
							}
						}
						
						if(arbuste<=3 && arbre<=3 && (arbre+arbuste)<=3){
								arbres[i][j]="arbuste";
							}
						
						
						else{
							arbres[i][j]="jeune_pousse";
						}
						arbre = 0;
						arbuste = 0;
						break;
					case "arbuste":
						arbres[i][j]="arbuste2";
						break;
					case "arbuste2":
						arbres[i][j]="arbre";
						break;
					}
					
					
		 
				}
		 }
	}

	public String[][] getArbres() {
		return arbres;
	}

	public void setArbres(String[][] arbres) {
		this.arbres = arbres;
	}
	
	

}
